

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=&#34;auto&#34;>



<head>
  <meta charset="UTF-8">
  <link rel="apple-touch-icon" sizes="76x76" href="/img/favicon.ico">
  <link rel="icon" href="/img/favicon.ico">
  <meta name="viewport"
        content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  
  <meta name="theme-color" content="#2f4154">
  <meta name="description" content="C语言在复试中的常见问题01">
  <meta name="author" content="叶尘">
  <meta name="keywords" content="">
  
  <title>复试-C语言程序设计面试问答01 - 叶尘的技术升级小木屋</title>

  <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" />


  <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css@4.0.0/github-markdown.min.css" />
  <link  rel="stylesheet" href="/lib/hint/hint.min.css" />

  
    
    
      
      <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/highlight.js@10.7.2/styles/github-gist.min.css" />
    
  

  
    <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.css" />
  



<!-- 主题依赖的图标库，不要自行修改 -->

<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_ba1fz6golrf.css">



<link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_kmeydafke9r.css">


<link  rel="stylesheet" href="/css/main.css" />

<!-- 自定义样式保持在最底部 -->

  
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/bynotes/texiao/source/css/shubiao.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/bynotes/texiao/source/css/gundongtiao.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/bynotes/texiao/source/css/daziyanse.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/bynotes/texiao/source/css/toubudaziji.css">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">



  <script id="fluid-configs">
    var Fluid = window.Fluid || {};
    var CONFIG = {"hostname":"www.yechen-blog.cn","root":"/","version":"1.8.11","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"right","visible":"hover","icon":""},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"copy_btn":true,"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"baidu":null,"google":null,"gtag":null,"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null}},"search_path":"/local-search.xml"};
  </script>
  <script  src="/js/utils.js" ></script>
  <script  src="/js/color-schema.js" ></script>
<meta name="generator" content="Hexo 5.4.0"></head>


<body>
  <header style="height: 70vh;">
    <nav id="navbar" class="navbar fixed-top  navbar-expand-lg navbar-dark scrolling-navbar">
  <div class="container">
    <a class="navbar-brand"
       href="/">&nbsp;<strong>YECHEN</strong>&nbsp;</a>

    <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
            data-target="#navbarSupportedContent"
            aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <div class="animated-icon"><span></span><span></span><span></span></div>
    </button>

    <!-- Collapsible content -->
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav ml-auto text-center">
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/">
                <i class="iconfont icon-home-fill"></i>
                首页
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/categories/">
                <i class="iconfont icon-qrcode"></i>
                分类
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/tags/">
                <i class="iconfont icon-tags-fill"></i>
                标签
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/about/">
                <i class="iconfont icon-user-fill"></i>
                关于
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item">
              <a class="nav-link" href="/playlist/">
                <i class="iconfont icon-music"></i>
                音乐
              </a>
            </li>
          
        
          
          
          
          
            <li class="nav-item dropdown">
              <a class="nav-link dropdown-toggle" target="_self" role="button"
                 data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                <i class="iconfont icon-books"></i>
                链接
              </a>
              <div class="dropdown-menu" aria-labelledby="navbarDropdown">
                
                  
                  
                  
                  <a class="dropdown-item" target="_blank" rel="noopener" href="https://hexo.fluid-dev.com/">
                    
                    主题博客
                  </a>
                
                  
                  
                  
                  <a class="dropdown-item" target="_blank" rel="noopener" href="https://hexo.fluid-dev.com/docs/guide/">
                    
                    配置指南
                  </a>
                
                  
                  
                  
                  <a class="dropdown-item" target="_blank" rel="noopener" href="https://hexo.fluid-dev.com/docs/icon/">
                    
                    图标用法
                  </a>
                
                  
                  
                  
                  <a class="dropdown-item" target="_blank" rel="noopener" href="https://www.bilibili.com">
                    
                    哔哩哔哩
                  </a>
                
              </div>
            </li>
          
        
        
          <li class="nav-item" id="search-btn">
            <a class="nav-link" target="_self" data-toggle="modal" data-target="#modalSearch">&nbsp;<i
                class="iconfont icon-search"></i>&nbsp;</a>
          </li>
        
        
          <li class="nav-item" id="color-toggle-btn">
            <a class="nav-link" target="_self">&nbsp;<i
                class="iconfont icon-dark" id="color-toggle-icon"></i>&nbsp;</a>
          </li>
        
      </ul>
    </div>
  </div>
</nav>

    <div class="banner" id="banner" parallax=true
         style="background: url('/img/banner.jpg') no-repeat center center;
           background-size: cover;">
      <div class="full-bg-img">
        <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
          <div class="page-header text-center fade-in-up">
            <span class="h2" id="subtitle" title="复试-C语言程序设计面试问答01">
              
            </span>

            
              <div class="mt-3">
  
    <span class="post-meta mr-2">
      <i class="iconfont icon-author" aria-hidden="true"></i>
      叶尘
    </span>
  
  
    <span class="post-meta">
      <i class="iconfont icon-date-fill" aria-hidden="true"></i>
      <time datetime="2023-03-06 17:00" pubdate>
        星期一, 三月 6日 2023, 5:00 下午
      </time>
    </span>
  
</div>

<div class="mt-1">
  
    
    <span class="post-meta mr-2">
      <i class="iconfont icon-chart"></i>
      3.1k 字
    </span>
  

  
    
    <span class="post-meta mr-2">
      <i class="iconfont icon-clock-fill"></i>
      
      
      33
       分钟
    </span>
  

  
  
    
      <!-- LeanCloud 统计文章PV -->
      <span id="leancloud-page-views-container" class="post-meta" style="display: none">
        <i class="iconfont icon-eye" aria-hidden="true"></i>
        <span id="leancloud-page-views"></span> 次
      </span>
    
  
</div>

            
          </div>

          
        </div>
      </div>
    </div>
  </header>

  <main>
    
      

<div class="container-fluid nopadding-x">
  <div class="row nomargin-x">
    <div class="d-none d-lg-block col-lg-2"></div>
    <div class="col-lg-8 nopadding-x-md">
      <div class="container nopadding-x-md" id="board-ctn">
        <div class="py-5" id="board">
          <article class="post-content mx-auto">
            <!-- SEO header -->
            <h1 style="display: none">复试-C语言程序设计面试问答01</h1>
            
            <div class="markdown-body">
              <h3 id="1、谈谈你对-C-语言的理解"><a href="#1、谈谈你对-C-语言的理解" class="headerlink" title="1、谈谈你对 C 语言的理解"></a>1、谈谈你对 C 语言的理解</h3><blockquote>
<ul>
<li><p>C语言是一门通用的计算机编程语言，是面向过程的高级语言。</p>
<ul>
<li><code>面向过程：</code>就是要分析出解决问题的一个步骤，然后使用函数去一步步把这些函数实现，使用的时候一个个函数顺序调用就可以了。性能高，但是可维护、易复用、易扩展性低。</li>
<li><code>面向对象：</code>会把构成问题的事务分为一个个的对象，是对一个实物的高度抽象化，在对象内设置属性、方法等。可维护、易复用、易扩展，但是性能低于面向过程函数。</li>
</ul>
</li>
<li><p>广泛应用于系统编程，像操作系统、编译器、驱动啊都是使用C语言开发的，像我使用的比较多的Java的JVM虚拟机就是使用C语言开发的。</p>
</li>
<li><p>C语言中的指针是一个重要的特性，它使得程序员可以直接操作内存，这就使得C语言可以处理底层硬件，编写高效的程序。</p>
</li>
<li><p>但是，指针也使得C语言具有潜在的危险，因为程序员必须手动管理内存，否则可能会导致内存泄漏或指针错误。</p>
</li>
</ul>
</blockquote>
<h3 id="2、C-语言程序的结构"><a href="#2、C-语言程序的结构" class="headerlink" title="2、C 语言程序的结构"></a>2、C 语言程序的结构</h3><blockquote>
<ol>
<li>头文件：使用 #include 引入，头文件中包含了程序中需要的函数声明和一些宏定义</li>
<li>全局变量</li>
<li>mian函数和其他一些自定义函数</li>
<li>在函数内容可以定义局部变量，可以调用其他函数，还有函数执行完成后的返回值</li>
</ol>
<figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><code class="hljs c++"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string">&lt;头文件&gt;</span></span><br><br><span class="hljs-comment">// 全局变量定义</span><br><span class="hljs-keyword">int</span> 全局变量<span class="hljs-number">1</span>;<br><span class="hljs-keyword">char</span> 全局变量<span class="hljs-number">2</span>;<br><br><span class="hljs-comment">// 函数定义</span><br>返回值类型 函数名(参数列表) &#123;<br>    <span class="hljs-comment">// 变量定义</span><br>    数据类型 变量名;<br><br>    <span class="hljs-comment">// 语句</span><br>    执行语句;<br><br>    <span class="hljs-comment">// 返回值</span><br>    <span class="hljs-keyword">return</span> 返回值;<br>&#125;<br><br><span class="hljs-comment">// 主函数</span><br><span class="hljs-function"><span class="hljs-keyword">int</span> <span class="hljs-title">main</span><span class="hljs-params">()</span> </span>&#123;<br>    <span class="hljs-comment">// 变量定义</span><br>    数据类型 变量名;<br><br>    <span class="hljs-comment">// 语句</span><br>    执行语句;<br><br>    <span class="hljs-comment">// 函数调用</span><br>    函数名(参数);<br><br>    <span class="hljs-comment">// 返回值</span><br>    <span class="hljs-keyword">return</span> <span class="hljs-number">0</span>;<br>&#125;<br><br></code></pre></td></tr></table></figure>

<p>C语言程序的执行顺序是从main函数开始的，之后依次执行每个语句，直到程序结束</p>
</blockquote>
<h3 id="3、C-语言有多少个关键字、多少个控制语句、多少种运算符"><a href="#3、C-语言有多少个关键字、多少个控制语句、多少种运算符" class="headerlink" title="3、C 语言有多少个关键字、多少个控制语句、多少种运算符"></a>3、C 语言有多少个关键字、多少个控制语句、多少种运算符</h3><blockquote>
<p>C语言共有32个关键字，它们是：</p>
<blockquote>
<p>数据类型、循环、结构体、共用体</p>
</blockquote>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs c"><span class="hljs-keyword">auto</span>, <span class="hljs-keyword">break</span>, <span class="hljs-keyword">case</span>, <span class="hljs-keyword">char</span>, <span class="hljs-keyword">const</span>, <span class="hljs-keyword">continue</span>, <span class="hljs-keyword">default</span>, <span class="hljs-keyword">do</span>, <span class="hljs-keyword">double</span>, <span class="hljs-keyword">else</span>, <span class="hljs-keyword">enum</span>, <span class="hljs-keyword">extern</span>, <span class="hljs-keyword">float</span>, <span class="hljs-keyword">for</span>, <span class="hljs-keyword">goto</span>, <span class="hljs-keyword">if</span>, <span class="hljs-keyword">int</span>, <span class="hljs-keyword">long</span>, <span class="hljs-keyword">register</span>, <span class="hljs-keyword">return</span>, <span class="hljs-keyword">short</span>, <span class="hljs-keyword">signed</span>, <span class="hljs-keyword">sizeof</span>, <span class="hljs-keyword">static</span>, struct, <span class="hljs-keyword">switch</span>, <span class="hljs-keyword">typedef</span>, <span class="hljs-keyword">union</span>, <span class="hljs-keyword">unsigned</span>, <span class="hljs-keyword">void</span>, <span class="hljs-keyword">volatile</span>, <span class="hljs-keyword">while</span><br></code></pre></td></tr></table></figure>

<p>C语言中有6个控制语句，它们是：</p>
<ol>
<li>if语句：用于根据条件判断是否执行某段代码。</li>
<li>switch语句：用于根据不同的条件执行不同的代码块。</li>
<li>while语句：用于循环执行某段代码，直到指定的条件不再成立。</li>
<li>do-while语句：与while语句类似，但是先执行一次代码块，再根据条件进行循环。</li>
<li>for语句：用于循环执行某段代码，通常用于已知循环次数的情况。</li>
<li>break和continue语句：用于在循环中控制程序的执行流程，break语句用于跳出循环，continue语句用于跳过本次循环。</li>
</ol>
<p>C语言中有44个运算符，包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、逗号运算符等。其中常用的运算符有：</p>
<ol>
<li><strong>算术</strong>运算符：+、-、*、/、%</li>
<li><strong>关系</strong>运算符：==、!=、&lt;、&gt;、&lt;=、&gt;=</li>
<li><strong>逻辑</strong>运算符：&amp;&amp;、||、!</li>
<li><strong>位</strong>运算符：&amp;、|、^、&lt;&lt;、&gt;&gt;</li>
<li><strong>赋值</strong>运算符：=、+=、-=、*=、/=、%=、&amp;=、|=、^=、&lt;&lt;=、&gt;&gt;=</li>
<li><strong>条件</strong>运算符：?:</li>
</ol>
</blockquote>
<h3 id="4、C-程序在计算机上如何执行"><a href="#4、C-程序在计算机上如何执行" class="headerlink" title="4、C 程序在计算机上如何执行"></a>4、C 程序在计算机上如何执行</h3><blockquote>
<p>主要分为四步执行</p>
<ol>
<li><strong>编辑：</strong>编写.c文件，形成源文件</li>
<li><strong>编译：</strong>在执行编译之前其实还有一步就是预处理，会对源文件做一些简单的加工，像一些头文件的包含、宏定义、条件编译等。编译阶段就是将 .c 程序翻译成 目标文件(.obj)</li>
<li><strong>链接：</strong>将目标程序和使用的系统文件进行链接，经过链接后，就可以生成一个.exe可执行文件</li>
<li><strong>运行：</strong>.exe 可执行文件，可以脱离编译环境，直接在计算机上执行</li>
</ol>
</blockquote>
<h3 id="5、C-语言的基本数据类型有那些"><a href="#5、C-语言的基本数据类型有那些" class="headerlink" title="5、C 语言的基本数据类型有那些"></a>5、C 语言的基本数据类型有那些</h3><blockquote>
<ol>
<li>整型：short / int / long / long long</li>
<li>浮点型：float / double</li>
<li>字符型：char</li>
</ol>
</blockquote>
<h3 id="6、整型数据、浮点型数据有哪几种，他们有什么区别"><a href="#6、整型数据、浮点型数据有哪几种，他们有什么区别" class="headerlink" title="6、整型数据、浮点型数据有哪几种，他们有什么区别"></a>6、整型数据、浮点型数据有哪几种，他们有什么区别</h3><blockquote>
<ol>
<li>整型数据：short / int / long / long long</li>
<li>浮点型：float / double</li>
</ol>
<p>区别：占用的存储空间不同，所能表示的数据范围和精度不同</p>
</blockquote>
<h3 id="7、变量的定义和使用，变量有什么作用"><a href="#7、变量的定义和使用，变量有什么作用" class="headerlink" title="7、变量的定义和使用，变量有什么作用"></a>7、变量的定义和使用，变量有什么作用</h3><blockquote>
<p>定义：<code>变量类型 变量名 = 变量值;</code></p>
<p>使用：赋值、算数运算、逻辑运算、关系运算</p>
<p>作用：</p>
<ol>
<li>存储数据：变量一旦声明，系统会为它分配相应的存储空间，通过变量赋值，就可以将数据存储下来</li>
<li>控制程序的流程：可以作为流程控制的判断条件，如if语句、for循环</li>
<li>传递参数</li>
<li>提高程序的可读性：一般变量取名见名知意，可以使得代码更加易读和可维护</li>
</ol>
</blockquote>
<h3 id="8、什么是表达式，表达式有那些"><a href="#8、什么是表达式，表达式有那些" class="headerlink" title="8、什么是表达式，表达式有那些"></a>8、什么是表达式，表达式有那些</h3><blockquote>
<p><strong>什么是表达式：</strong>用<font color="red">运算符</font>将对应的<font color="red">运算对象</font>联系起来的式子，就是表达式</p>
<p><strong>有哪些：</strong>算数表达式、赋值表达式、关系表达式、逻辑表达式</p>
</blockquote>
<h3 id="9、运算符有哪些，他们之间有什么区别"><a href="#9、运算符有哪些，他们之间有什么区别" class="headerlink" title="9、运算符有哪些，他们之间有什么区别"></a>9、运算符有哪些，他们之间有什么区别</h3><blockquote>
<ol>
<li><strong>算术</strong>运算符：+、-、*、/、%</li>
<li><strong>关系</strong>运算符：==、!=、&lt;、&gt;、&lt;=、&gt;=</li>
<li><strong>逻辑</strong>运算符：&amp;&amp;、||、!</li>
<li><strong>位</strong>运算符：&amp;、|、^、&lt;&lt;、&gt;&gt;</li>
<li><strong>赋值</strong>运算符：=、+=、-=、*=、/=、%=、&amp;=、|=、^=、&lt;&lt;=、&gt;&gt;=</li>
<li><strong>条件</strong>运算符：?:</li>
</ol>
<p><strong>区别：</strong>所执行的功能、方法、结果均不同</p>
</blockquote>
<h3 id="10、如何理解结构化程序，有什么特点，怎么设计的"><a href="#10、如何理解结构化程序，有什么特点，怎么设计的" class="headerlink" title="10、如何理解结构化程序，有什么特点，怎么设计的"></a>10、如何理解结构化程序，有什么特点，怎么设计的</h3><blockquote>
<p><strong>结构化程序：</strong>由三种基本结构（顺序、选择、循环）构成或者复合嵌套构成的程序称为结构化程序</p>
<p><strong>特点：</strong>结构清晰、层次分明、有良好的的可续性和可维护性</p>
<p><strong>设计过程：</strong>分析问题 =&gt; 设计问题 =&gt; 实现程序</p>
</blockquote>
<h3 id="11、C-语言中三种基本结构是什么，如何使用"><a href="#11、C-语言中三种基本结构是什么，如何使用" class="headerlink" title="11、C 语言中三种基本结构是什么，如何使用"></a>11、C 语言中三种基本结构是什么，如何使用</h3><blockquote>
<p><strong>三种基本结构：</strong>顺序结构、选择结构、循环结构</p>
<ol>
<li>顺序结构：有若干的程序块组成，各个程序块按照排列顺序依次执行</li>
<li>选择结构：根据判断条件，从两条分支或者多条分支选择下一步要执行的程序块</li>
<li>循环结构：根据判断条件，循环执行重复代码块，知道条件不成立，跳出循环</li>
</ol>
</blockquote>
<h3 id="12、算法是什么，怎么表示，有什么特点"><a href="#12、算法是什么，怎么表示，有什么特点" class="headerlink" title="12、算法是什么，怎么表示，有什么特点"></a>12、算法是什么，怎么表示，有什么特点</h3><blockquote>
<p><strong>算法是什么：</strong>解决问题的一系列步骤或过程，是一种明确的计算过程，它由一系列步骤组成，这些步骤将输入数据转化为输出结果</p>
<p><strong>表示：</strong>伪代码、程序代码、流程图、自然语言</p>
<p><strong>特点：</strong>有穷性、可行性、确定性、输入、输出</p>
</blockquote>
<h3 id="13、while-和-do-while-的区别"><a href="#13、while-和-do-while-的区别" class="headerlink" title="13、while 和 do while 的区别"></a>13、while 和 do while 的区别</h3><blockquote>
<p>while 语句先判断，在执行功能语句</p>
<p>do while 先执行功能语句，在判断</p>
<p>所以，do while 中的代码至少会执行一次，而while中的代码可能一次都不会执行</p>
</blockquote>
<h3 id="14、for-语句的作用"><a href="#14、for-语句的作用" class="headerlink" title="14、for 语句的作用"></a>14、for 语句的作用</h3><blockquote>
<p><strong>作用：</strong>实现循环</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs c"><span class="hljs-keyword">for</span> (初始化表达式; 条件表达式; 更新表达式) &#123;<br>    循环体语句;<br>&#125;<br></code></pre></td></tr></table></figure>

<ol>
<li>初始化表达式：在循环开始之前，先进行表达式的初始化，为一些变量赋值</li>
<li>条件表达式：接下来，通过判断条件表达式是否成立，来确定是否进入循环</li>
<li>更新表达式：在上一次循环结束后，会执行更新表达式，之后就会回到 2 继续判断条件是否成立</li>
<li>循环体语句：循环主体功能代码</li>
</ol>
</blockquote>
<h3 id="15、为什么使用循环语句的使用-while-和-do-while-语句，不常用-go-to-语句"><a href="#15、为什么使用循环语句的使用-while-和-do-while-语句，不常用-go-to-语句" class="headerlink" title="15、为什么使用循环语句的使用 while 和 do while 语句，不常用 go to 语句"></a>15、为什么使用循环语句的使用 while 和 do while 语句，不常用 go to 语句</h3><blockquote>
<p><strong>原因：</strong>goto语句使用不当可能会导致程序结构的混乱，降低程序的可读性，会增加流程控制的困难</p>
</blockquote>
<h3 id="16、函数的定义和使用，函数如何进行调用"><a href="#16、函数的定义和使用，函数如何进行调用" class="headerlink" title="16、函数的定义和使用，函数如何进行调用"></a>16、函数的定义和使用，函数如何进行调用</h3><blockquote>
<p><strong>函数的定义：</strong><code>返回值 函数名(形式参数);</code></p>
<p><strong>函数的实现：</strong></p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs c">返回值 函数名(形式参数) &#123;<br>    函数体;<br>    <span class="hljs-keyword">return</span> 返回值;<br>&#125;<br></code></pre></td></tr></table></figure>
</blockquote>
<h3 id="17、函数的调用有那些方式，有什么区别吗"><a href="#17、函数的调用有那些方式，有什么区别吗" class="headerlink" title="17、函数的调用有那些方式，有什么区别吗"></a>17、函数的调用有那些方式，有什么区别吗</h3><blockquote>
<ol>
<li>无参调用</li>
<li>有参调用</li>
<li>赋值调用</li>
<li>函数指针，通过回调调用：以一个参数的形式将函数指针传递至另一个函数内，在另一个函数内通过函数指针调用该函数</li>
</ol>
</blockquote>
<h3 id="18、形参和实参的区别，函数使用和调用时形参和实参有什么要求-x"><a href="#18、形参和实参的区别，函数使用和调用时形参和实参有什么要求-x" class="headerlink" title="18、形参和实参的区别，函数使用和调用时形参和实参有什么要求:x:"></a>18、形参和实参的区别，函数使用和调用时形参和实参有什么要求:x:</h3><h3 id="19、有参函数和无参函数的区别，使用时的注意事项"><a href="#19、有参函数和无参函数的区别，使用时的注意事项" class="headerlink" title="19、有参函数和无参函数的区别，使用时的注意事项"></a>19、有参函数和无参函数的区别，使用时的注意事项</h3><blockquote>
<p><strong>有参函数：</strong>在函数执行时，需要使用主调函数传递过来的一些变量值来完成函数体的执行，最终可能有返回值，也可能没有</p>
<p><strong>无参函数：</strong>函数执行不需要外接传递值</p>
<p><strong>注意事项：</strong></p>
<ul>
<li>有参函数：定义时要指定形参类型，调用时要实参类型和数量要与形参类型和数量匹配</li>
<li>无参函数：调用时不能省去 <code>()</code></li>
</ul>
</blockquote>
<h3 id="20、什么是递归算法"><a href="#20、什么是递归算法" class="headerlink" title="20、什么是递归算法"></a>20、什么是递归算法</h3><blockquote>
<p><strong>递归算法：</strong>函数自身调用自身，并通过某些条件来跳出递归</p>
</blockquote>
<h3 id="21、全局变量和局部变脸的区别、定义和使用"><a href="#21、全局变量和局部变脸的区别、定义和使用" class="headerlink" title="21、全局变量和局部变脸的区别、定义和使用"></a>21、全局变量和局部变脸的区别、定义和使用</h3><blockquote>
<p><strong>全局变量：</strong>定义在函数外面的变量，整个程序范围内都可以使用（没有使用 static 关键字修饰）</p>
<p><strong>局部变量：</strong>定义在函数内部的变量，只能在当前函数范围内使用，一旦离开函数范围就不能使用了</p>
<p><strong>区别：</strong></p>
<ol>
<li>作用域不同</li>
<li>局部变量系统不会初始化，全局变量系统会进行默认初始化，如下</li>
</ol>
<p><img src="https://yechen-blog-image.oss-cn-hangzhou.aliyuncs.com/images/image-20230227124612950.png" srcset="/img/loading.gif" lazyload alt="image-20230227124612950"></p>
</blockquote>
<h3 id="22、变量的存储类型有那些，有什么区别"><a href="#22、变量的存储类型有那些，有什么区别" class="headerlink" title="22、变量的存储类型有那些，有什么区别"></a>22、变量的存储类型有那些，有什么区别</h3><blockquote>
<p><strong>存储类型：</strong></p>
<ol>
<li>自动变量（auto）：自动变量是函数内部声明的变量，它们的值在函数调用时被初始化，函数返回时自动销毁。</li>
<li>静态变量（static）：静态变量在程序运行期间一直存在，不受函数调用的影响。静态变量可以被声明为局部变量或全局变量。局部静态变量只能在函数内部访问，全局静态变量可以在整个程序中被访问。</li>
<li>寄存器变量（register）：寄存器变量是存放在CPU寄存器中的变量，它们的访问速度更快。通常用于存储频繁使用的变量，但是由于寄存器数量有限，所以不是所有变量都可以被声明为寄存器变量。</li>
<li>外部变量（extern）：外部变量是在函数外部声明的全局变量，它们的作用域可以扩展到整个程序中。</li>
</ol>
</blockquote>
<h3 id="23、动态存储和静态存储的区别"><a href="#23、动态存储和静态存储的区别" class="headerlink" title="23、动态存储和静态存储的区别"></a>23、动态存储和静态存储的区别</h3><blockquote>
<p><strong>动态存储：</strong>在程序运行期间，每次进入函数时，会进行内存单元的分配，函数执行完后内存就释放了</p>
<p><strong>静态存储：</strong>在程序开始前固定分配某一内存单元，在程序运行期间都可以访问，在整个程序运行结束后才释放</p>
</blockquote>
<h3 id="24、局部变量和全局变量同名时要注意什么"><a href="#24、局部变量和全局变量同名时要注意什么" class="headerlink" title="24、局部变量和全局变量同名时要注意什么"></a>24、局部变量和全局变量同名时要注意什么</h3><blockquote>
<p>会优先使用局部变量</p>
</blockquote>
<h3 id="25、数组的定义和使用"><a href="#25、数组的定义和使用" class="headerlink" title="25、数组的定义和使用"></a>25、数组的定义和使用</h3><blockquote>
<p><strong>定义：</strong><code>数组类型 数组名[数组中数据个数];</code></p>
<p><strong>初始化方式：</strong></p>
<ol>
<li><p>定义时直接赋值：<code>int arr[3] = &#123;1, 2, 3&#125;;</code></p>
</li>
<li><p>一个一个赋值：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs c"><span class="hljs-keyword">int</span> arr[<span class="hljs-number">3</span>];<br>arr[<span class="hljs-number">0</span>] = <span class="hljs-number">1</span>;<br>arr[<span class="hljs-number">1</span>] = <span class="hljs-number">2</span>;<br>arr[<span class="hljs-number">2</span>] = <span class="hljs-number">3</span>;<br></code></pre></td></tr></table></figure></li>
<li><p>动态初始化：</p>
<figure class="highlight c"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs c"><span class="hljs-meta">#<span class="hljs-meta-keyword">include</span><span class="hljs-meta-string">&lt;stdio.h&gt;</span></span><br><br><span class="hljs-keyword">int</span> *arr = (<span class="hljs-keyword">int</span>*)<span class="hljs-built_in">malloc</span>(<span class="hljs-keyword">sizeof</span>(<span class="hljs-keyword">int</span>) * <span class="hljs-number">3</span>);<br></code></pre></td></tr></table></figure></li>
</ol>
<p><strong>使用：</strong><code>数组名[索引下标]</code>，索引下表从 0 开始</p>
</blockquote>
<h3 id="26、一维数组和二维数组的区别"><a href="#26、一维数组和二维数组的区别" class="headerlink" title="26、一维数组和二维数组的区别"></a>26、一维数组和二维数组的区别</h3><blockquote>
<p>一个是一维线性，使用 <code>arr[indxe]</code> 方式取值</p>
<p>一个是二维数据，使用 <code>arr[row][col]</code> 方式取值</p>
<p>在内存中，二维数组可以按行存储，也可以按列存储，如按行存储就是一行一行地存，下一行数据存储在上一行数据后面</p>
</blockquote>

            </div>
            <hr>
            <div>
              <div class="post-metas mb-3">
                
                  <div class="post-meta mr-3">
                    <i class="iconfont icon-category"></i>
                    
                      <a class="hover-with-bg" href="/categories/%E8%80%83%E7%A0%94/">考研</a>
                    
                      <a class="hover-with-bg" href="/categories/%E8%80%83%E7%A0%94/%E5%A4%8D%E8%AF%95/">复试</a>
                    
                      <a class="hover-with-bg" href="/categories/%E8%80%83%E7%A0%94/%E5%A4%8D%E8%AF%95/C%E8%AF%AD%E8%A8%80/">C语言</a>
                    
                  </div>
                
                
                  <div class="post-meta">
                    <i class="iconfont icon-tags"></i>
                    
                      <a class="hover-with-bg" href="/tags/%E8%80%83%E7%A0%94/">考研</a>
                    
                      <a class="hover-with-bg" href="/tags/%E5%A4%8D%E8%AF%95/">复试</a>
                    
                      <a class="hover-with-bg" href="/tags/C%E8%AF%AD%E8%A8%80/">C语言</a>
                    
                  </div>
                
              </div>
              
                <p class="note note-warning">
                  
                    本博客所有文章除特别声明外，均采用 <a target="_blank" href="https://creativecommons.org/licenses/by-sa/4.0/deed.zh" rel="nofollow noopener noopener">CC BY-SA 4.0 协议</a> ，转载请注明出处！
                  
                </p>
              
              
                <div class="post-prevnext">
                  <article class="post-prev col-6">
                    
                    
                      <a href="/2023/03/08/%E5%A4%8D%E8%AF%95-%E5%A4%8D%E8%AF%95-C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E9%9D%A2%E8%AF%95%E9%97%AE%E7%AD%9402/">
                        <i class="iconfont icon-arrowleft"></i>
                        <span class="hidden-mobile">复试-C语言程序设计面试问答02</span>
                        <span class="visible-mobile">上一篇</span>
                      </a>
                    
                  </article>
                  <article class="post-next col-6">
                    
                    
                      <a href="/2023/03/06/%E5%A4%8D%E8%AF%95-%E5%A4%8D%E8%AF%95-C%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0/">
                        <span class="hidden-mobile">考研复试-C语言学习</span>
                        <span class="visible-mobile">下一篇</span>
                        <i class="iconfont icon-arrowright"></i>
                      </a>
                    
                  </article>
                </div>
              
            </div>

            
          </article>
        </div>
      </div>
    </div>
    
      <div class="d-none d-lg-block col-lg-2 toc-container" id="toc-ctn">
        <div id="toc">
  <p class="toc-header"><i class="iconfont icon-list"></i>&nbsp;目录</p>
  <div class="toc-body" id="toc-body"></div>
</div>

      </div>
    
  </div>
</div>

<!-- Custom -->


    

    
      <a id="scroll-top-button" href="#" role="button">
        <i class="iconfont icon-arrowup" aria-hidden="true"></i>
      </a>
    

    
      <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
     aria-hidden="true">
  <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
    <div class="modal-content">
      <div class="modal-header text-center">
        <h4 class="modal-title w-100 font-weight-bold">搜索</h4>
        <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body mx-3">
        <div class="md-form mb-5">
          <input type="text" id="local-search-input" class="form-control validate">
          <label data-error="x" data-success="v"
                 for="local-search-input">关键词</label>
        </div>
        <div class="list-group" id="local-search-result"></div>
      </div>
    </div>
  </div>
</div>
    

    
  </main>

  <footer class="text-center mt-5 py-3">
  <div class="footer-content">
     <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> 
  </div>
  

  

  
</footer>


  <!-- SCRIPTS -->
  
  <script  src="https://cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js" ></script>
  <link  rel="stylesheet" href="https://cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.css" />

  <script>
    NProgress.configure({"showSpinner":false,"trickleSpeed":100})
    NProgress.start()
    window.addEventListener('load', function() {
      NProgress.done();
    })
  </script>


<script  src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js" ></script>
<script  src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" ></script>
<script  src="/js/events.js" ></script>
<script  src="/js/plugins.js" ></script>

<!-- Plugins -->


  
    <script  src="/js/img-lazyload.js" ></script>
  



  



  <script  src="https://cdn.jsdelivr.net/npm/tocbot@4.12.3/dist/tocbot.min.js" ></script>



  <script  src="https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@3.5.7/dist/jquery.fancybox.min.js" ></script>



  <script  src="https://cdn.jsdelivr.net/npm/anchor-js@4.3.1/anchor.min.js" ></script>



  <script defer src="https://cdn.jsdelivr.net/npm/clipboard@2.0.8/dist/clipboard.min.js" ></script>



  <script  src="/js/local-search.js" ></script>






  <script  src="https://cdn.jsdelivr.net/npm/typed.js@2.0.12/lib/typed.min.js" ></script>
  <script>
    (function (window, document) {
      var typing = Fluid.plugins.typing;
      var title = document.getElementById('subtitle').title;
      
      typing(title)
      
    })(window, document);
  </script>














  
<script src="//cdn.jsdelivr.net/gh/bynotes/texiao/source/js/xiaoxuehua.js"></script>
<script src="//cdn.jsdelivr.net/gh/bynotes/texiao/source/js/caidai.js"></script>
<script src="//cdn.jsdelivr.net/gh/bynotes/texiao/source/js/love.js"></script>
<script src="//cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<script src="//cdn.jsdelivr.net/gh/metowolf/MetingJS@1.2/dist/Meting.min.js"></script>



<!-- 主题的启动项 保持在最底部 -->
<script  src="/js/boot.js" ></script>

  <!--动态线条背景-->
  <script type="text/javascript" color="70,119,184" opacity='1' zIndex="-2" count="200" src="//cdn.bootcss.com/canvas-nest.js/1.0.0/canvas-nest.min.js"></script>

<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"model":{"jsonPath":"/live2dw/assets/koharu.model.json"},"display":{"position":"left","width":200,"height":400},"mobile":{"show":false},"log":false,"pluginJsPath":"lib/","pluginModelPath":"assets/","pluginRootPath":"live2dw/","tagMode":false});</script></body>
</html>
